/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.uch.syscom.hibernateSpringDao;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import pe.edu.uch.syscom.mapping.TbCategoria;
import pe.edu.uch.syscom.mapping.TbSubcategoria;

/**
 *
 * @author Jose Tejada
 */
public class HSCategoriaDAOImpl extends HibernateDaoSupport implements HSCategoriaDAO {

    public List<TbCategoria> listarCategorias() {
        List<TbCategoria> lstCategorias;
        try {
            lstCategorias = this.getSession().
                    createCriteria( TbCategoria.class ).
                    add( Restrictions.eq( "activo", 1 ) ).
                    list();
        } catch ( Exception ex ) {
            ex.printStackTrace();
            lstCategorias = new ArrayList<TbCategoria>();
        }
        return lstCategorias;
    }

    public List<TbSubcategoria> listarSubCategorias( int iIdCategoria ) {
        List<TbSubcategoria> lstSubCategorias;
        try {
            lstSubCategorias = this.getSession().
                    createCriteria( TbSubcategoria.class ).
                    add( Restrictions.eq( "tbCategoria.idCategoria", iIdCategoria ) ).
                    add( Restrictions.eq( "activo", 1 ) ).
                    list();
        } catch ( Exception ex ) {
            ex.printStackTrace();
            lstSubCategorias = new ArrayList<TbSubcategoria>();
        }
        return lstSubCategorias;
    }

    public void saveCategoria( String m_sCategSubCateg ) {
        TbCategoria cat = new TbCategoria();
        cat.setDescripcion( m_sCategSubCateg );
        cat.setActivo( 1 );
        this.getHibernateTemplate().saveOrUpdate( cat );
    }

    public void saveSubCategoria( String sCategSubCateg, int iIdCategoria ) {
        TbSubcategoria subCat = new TbSubcategoria();
        subCat.setTbCategoria( new TbCategoria( iIdCategoria ) );
        subCat.setDescripcion( sCategSubCateg );
        subCat.setActivo( 1 );
        this.getHibernateTemplate().saveOrUpdate( subCat );
    }
}
